package main

import (
	"context"
	"fmt"
	"io/ioutil"

	"github.com/gogf/gf/v2/frame/g"
)

// 方式一：不带参数请求GET
// func main() {
// 	c := g.Client()
// 	ctx := context.Background()
// 	resp, err := c.Get(ctx, "http://localhost:8080/hello")
// 	if err!= nil {
// 		panic(err)
// 	}
// 	defer resp.Body.Close()
// 	body, err := ioutil.ReadAll(resp.Body)
// 	if err!= nil {
// 		panic(err)
// 	}
// 	fmt.Println(string(body))
// }

// 方式二：带参数请求GET
// func main() {
// 	c := g.Client()
// 	ctx := context.Background()
// 	// params := g.Map{
// 	// 	"name": "john",
// 	// 	"age":  23,
// 	// }
// 	// resp, err := c.Get(ctx, "http://localhost:8080/hello", params)
// 	resp, err := c.Get(ctx, "http://localhost:8080/hello?name=tom&age=24")
// 	if err!= nil {
// 		panic(err)
// 	}
// 	defer resp.Body.Close()
// 	body, err := ioutil.ReadAll(resp.Body)
// 	if err != nil {
// 		panic(err)
// 	}
// 	fmt.Println(string(body))
// }

// 方式三：POST请求
func main() {
	c := g.Client()
	ctx := context.Background()
	params := g.Map{
		"name": "anna",
		"age":  25,
	}
	resp, err := c.Post(ctx, "http://localhost:8080/hello", params)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}
	fmt.Println(string(body))
}